﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Collections;
using System.IO;

namespace SDK10kWrapper
{
    /// <summary>
    /// <para>This Class is still in Development. Purpose : To Put all of the Camera in to a group so that you can Play, Pause, Stop them together</para>
    /// <para>USE CAMERABOX STATIC METHOD INSTEAD</para>
    /// </summary>
    class CameraCollection : IEnumerable
    {
        List<CameraBox> iList;
        public CameraCollection()
        {
            iList = new List<CameraBox>();
        }

        public void Add(CameraBox cambox)
        {
            if (iList.Count > 0)            if (cambox.ParentForm != iList[0].ParentForm) return;
            iList.Add(cambox);
        }

        public void Remove(CameraBox cambox)
        {
            iList.Remove(cambox);
        }

        public void Clear()
        {
            iList.Clear();
        }

        public int Count
        {
            get { return iList.Count; }
        }

        public CameraBox this[int index]
        {
            get { return iList[index]; }
            set { iList[index] = value; }
        }

        public IEnumerator GetEnumerator()
        {
            return iList.GetEnumerator();
        }

        #region CameraBox Members
        public void PlayAll()
        {

        }

        public void PauseAll()
        {

        }

        public void StopAll()
        {

        }

        public void CaptureAll()
        {

        }

        public void ChangeModeAll(CameraMode mode)
        {

        }

        public void ConnectAll()
        {

        }

        public void DisconnectAll()
        {

        }

        public void StartRecordAll()
        {

        }

        public void StartRecordAll(string folderPath)
        {

        }

        public Dictionary<CameraBox, FileInfo> StopRecordAll()
        {
            throw new NotImplementedException();
        }
        #endregion
    }
}
